package com.jxb.sort;

import java.util.Arrays;

/**
 * 选择排序
 *  1：遍历获取数组中的最小元素
 *  2：然后将最小元素排在第一的位置
 *  3：然后遍历剩下的元素，进行比较，放在第二的位置，依次进行下去
 */
public class FastSort {

    public static void main(String[] args) {
        int[] nums = {1,4,3,6,0,4,5,9,4,2,6};
        System.out.println("排序开始----------------->" + Arrays.toString(nums));
        int[] res = sortArray(nums);
        System.out.println("排序结束----------------->" + Arrays.toString(res));
    }

    // public static int[] sortArray(int[] nums) {
    //     if (nums == null) {
    //         return nums;
    //     }
    //     int[] temp = nums;
    //     int[] res = new int[nums.length];
    //     for (int i = 0;i<nums.length;i++) {
    //         //获取最小值
    //         int min = 0;
    //         int minIndex = 0;
    //         for (int j = 0;j<temp.length;j++) {
    //             if (j == 0 || temp[j] < min) {
    //                 min = temp[j];
    //                 minIndex = j;
    //             }
    //         }
    //         //删除temp数组中的最小元素
    //         temp = removeElement(temp, minIndex);
    //         res[i] = min;
    //         System.out.println(Arrays.toString(res));
    //     }
    //     return res;
    // }
    //
    // public static int[] removeElement(int[] arr, int index) {
    //     // 使用后一个元素替换前一个元素
    //     for (int i = index; i < arr.length - 1; i++) {
    //         arr[i] = arr[i + 1];
    //     }
    //     // 截取数组长度 - 1 的长度的数组
    //     int[] newArr = Arrays.copyOf(arr, arr.length - 1);
    //     // 返回新得到的数组
    //     return newArr;
    // }


    public static int[] sortArray(int[] nums) {
        for (int i = 0;i<nums.length;i++) {
            int min = nums[i];
            int index = i;
            for (int j = i;j<nums.length;j++) {
                if (nums[j] < min) {
                    min = nums[j];
                    index = j;
                }
            }
            nums[index] = nums[i];
            nums[i] = min;

        }
        return nums;
    }


}
